The code phase of a received, code modulated carrier signal has to be determined for example in CDMA (Code Division Multiple Access) spread spectrum communications.
For a spread spectrum communication in its basic form, a data sequence is used by a transmitting unit to modulate a sinusoidal carrier, and then the bandwidth of the resulting signal is spread to a much larger value. For spreading the bandwidth, the single-frequency carrier can be multiplied for example by a high-rate binary pseudo-random noise (PRN) code sequence comprising values of −1 and 1, which code sequence is known to a receiver. Thus, the signal that is transmitted includes a data component, a PRN component, and a sinusoidal carrier component. The term chips is used to designate the bits of the PRN code conveyed by the transmitted signal, as opposed to the bits of the data sequence.
A well known system which is based on the evaluation of such code modulated signals is GPS (Global Positioning System). In GPS, code modulated signals are transmitted by several satellites that orbit the earth and received by GPS receivers of which the current position is to be determined. Currently, each of the satellites transmits two microwave carrier signals. One of these carrier signals L1 is employed for carrying a navigation message and code signals of a standard positioning service (SPS). The L1 carrier signal is modulated by each satellite with a different C/A (Coarse Acquisition) code known at the receivers. Thus, different channels are obtained for the transmission by the different satellites. The carrier signal has a frequency of 1575.42 MHz and the C/A code, which is spreading the spectrum over a nominal bandwidth of 20.46 MHz, is repeated every 1023 chips, the epoch of the code being 1 ms. The carrier frequency of the L1 signal is further modulated with the navigation information at a bit rate of 50 bit/s. The navigation information, which constitutes a data sequence, can be evaluated for example for determining the position of the respective receiver. The navigation information includes for example ephemeris parameters, which describes short sections of the orbit of the respective satellite. Based on these ephemeris parameters, an algorithm can estimate the position of the satellite for any time while the satellite is in the respective described section.
A receiver receiving a code modulated signal has to have access to a synchronized replica of the employed modulation code, in order to be able to de-spread the data sequence of the signal. More specifically, a synchronization has to be performed between the received code modulated signal and an available replica code sequence. Usually, an initial synchronization called acquisition is followed by a fine synchronization called tracking. In both synchronization scenarios correlation means are used to find and maintain the best match between the replica code sequence and the received signal and thus to determine the received code phase. The match can be determined for example with chip accuracy. If an accuracy of a fraction of a chip is needed, the chip can be presented by several samples after an analog-to-digital conversion.
During the acquisition, the phase of the received code modulated signal relative to the available replica code sequence can have any possible value due to uncertainties in the position of the receiver, to uncertainties in the available time and/or to a lack of ephemeris information.
Moreover, an additional frequency modulation of the received signal may occur, which can be as large as +/−6 kHz due to a Doppler effect and several kHz due to receiver oscillator frequency uncertainty. The search of the received code phase is therefore usually performed with different assumptions on an additional frequency modulation. For a sensitivity increase, in particular for weak signal environments like indoor environments, a receiver normally uses long integrations that require the frequency uncertainty to be as small as a few Hz. Therefore, even with the aligned code, a large number of frequency assumptions should be checked.
For illustration, FIG. 1 presents a schematic block diagram of a signal acquisition module of a conventional receiver.
In the receiver, a radio frequency (RF) part (not shown) converts a received signal to the base band using a local oscillator. The base band signal is then converted into the digital domain by an analog-to-digital (AD) converter (not shown) and enters the digital base band part of the receiver. The resulting samples are mixed by a mixer 12 with a search center frequency ejωt. The mixed samples are then decimated by a decimation block 13 in accordance with a provided code frequency. The mixed and decimated samples are provided to a matched filter 14 to find out the code phase, or delay, of the received signal compared to an available replica code sequence. The matched filter 14 outputs continuously correlation values for each checked code phase.
The output of the matched filter 14 is provided to a Discrete Fourier Transform (DFT) bank 15 to eliminate any residual frequency left by the mixer 12, which will also be referred to as frequency offset. The DFT bank 15 mixes the output of the matched filter 14 for each checked code phase in parallel with a plurality of possible frequencies ejω1t, ejω2t, etc., e−jω1t, e−jω2t, etc.
The signal output by the AD converter has two unknown frequency components, a component resulting from the Doppler effect on the carrier frequency of the received signal and an oscillator error component. The combined uncertainty may be so large that the DFT bank 15 is not able to check the whole uncertainty range with a single search. In this case, several consecutive searches have to be carried out by the mixer 12 with different search center frequencies to cover the whole uncertainty range. The mixer 12 is thus used to adjust the search center frequency as necessary to cover large frequency uncertainties with several consecutive searches.
The signal entering the base band processing part might also have a known frequency offset after the down-conversion in the RF part. The mixer 12 can also be used to compensate for such a known offset.
After the DFT, the signal is integrated coherently and non-coherently until a sufficient signal-to-noise ratio is achieved for a reliable detection.
To this end, the results for each possible Doppler frequency are first added to a coherent memory 16. The coherent memory 16 is structured in the form of a table which comprises one column for each delay checked by the matched filter 14 for a respective code phase bin, and one row for each Doppler frequency checked by the DFT bank 15 for a respective DFT bin. Each entry of the table is thus associated to a combination of a particular code phase bin and a particular DFT bin. New correlation values for a particular combination are added for the respective duration of a coherent integration period.
In a subsequent non-coherent stage, consecutive coherent integration results for each combination are further integrated by summing the absolute or the squared values of these integration results. In the example of FIG. 1, a processing component 17 forms the sum over the squared I and Q components for each entry in the coherent memory 16. The output of the processing portion 17 is added to a corresponding entry in a non-coherent memory 18. The non-coherent memory 18 is structured in the same way as the coherent memory 16. New squared values are added for the respective duration of a non-coherent integration period.
If the assumptions on the code phase and the frequency modulation belonging to one combination are correct for the received code modulated signal, then the correlation results in a larger integration value than in the case of a misalignment or an inappropriate compensation of a frequency modulation. Thus, detecting the correlation peak in the non-coherent memory 18 and comparing it with a certain threshold allows finding the correct code phase and the correct frequency of modulation.
It has to be noted, however, that the Doppler effect has an influence not only on the carrier frequency of the received code modulated signal, but equally on the code repetition in this signal.
When a CDMA transmitter and a CDMA receiver are in motion relative to each other, the received carrier frequency will be different from the original transmitted carrier frequency due to the Doppler phenomenon. Since the ratio of carrier cycles per each code chip is fixed, the received spreading code rate will also be shifted from the transmitted code rate. This phenomenon is called code Doppler.
For example, in a GPS L1 C/A signal, the carrier frequency is 1575.42 MHz and the spreading code chip rate is 1.023 Mchip/s, as mentioned above. Hence, the code-to-carrier Doppler ratio is 1.023/1575.42=1/1540. This means that the code Doppler is always 1/1540 of the carrier Doppler.
It is a disadvantage of the signal acquisition module described with reference to FIG. 1 that the DFT bank 15 compensates only for the carrier Doppler effect, not the code Doppler effect. In practice this means that if the received signal happens to be in the middle DFT bin, namely when there is basically no Doppler effect present in the received signal or when the carrier Doppler effect has been compensated basically entirely by the mixer 12 and the code Doppler effect has been compensated basically entirely by the decimation block 13, the code Doppler compensation is correct and the acquisition works as expected. But if the signal is in one of the outermost DFT bins, the code Doppler compensation is no longer correct, and the signal will slide over several code phase bins during the search. In this case, the signal energy collected during the search is spread over several code bins. Therefore it becomes more difficult to detect the signal from the background noise.
So far, the problem of the code Doppler error has not been severe, since with the GPS L1 C/A signal, the code Doppler is much smaller than the carrier Doppler. The problem could thus be avoided by keeping the search times and DFT frequency coverage areas limited. However, this will change for example with the new GPS L5 signal and the Galileo signals, where the carrier frequency will be lower and the code frequency higher. In the GPS L5 signal, for example, the carrier frequency is 1176.45 MHz and the code chipping rate is 10.23 Mchip/s. Hence, the code-to-carrier Doppler ratio is 1/115, and thus more than 10 times worse than with the GPS L1 C/A signal.
The signal acquisition module of FIG. 1 could be configured for instance to cover a Doppler area of ±400 Hz. In the case of the GPS L1 C/A signal, the code Doppler error is 400/1540=0.26 chip/s, if the signal happens to be in the outmost DFT bin. In the case of the GPS L5 signal, the code Doppler error is 400/115=3.48 chip/s, if the signal happens to be in the outmost DFT bin. Assuming for example a total search time of one second and a code bin spacing of 0.5 chips, the L1 signal will drift by 0.26 chips during the search and will remain in one code bin. The L5 signal, in contrast, will drift by 3.48 chips during the search and will be spread over 7 code bins. Thus, in the latter case also the collected signal energy in each single code bin is only 1/7 of the total energy.
Moreover, the influence of the Doppler effect on the carrier frequency may change during the measurements, because the relative velocity between a transmitter and a receiver may change, or the oscillator frequency may drift. This change cannot be taken into account by the DFT bank 15 in the signal acquisition module of FIG. 1 either. That is, a signal does not stay in a single DFT bin of the DFT bank, but the signal energy is spread over several DFT bins.
It has to be noted that a similar problem may occur with any other receiver of code modulated signals, in particular with any other receiver for a Global Navigation Satellite System (GNSS).
In US Publication No. 2004/0071200 A1, the code Doppler problem is dealt with for another architecture, in which no coherent memory is employed. Here, extra delay lines and filters are used for delaying the output of cross-correlating means before adding it to a non-coherent memory. A possible drift of the carrier Doppler effect is not dealt with in this document.